/**
 * Created by luyunstaff007 on 16-6-7.
 */
//必须要执行了backToTargetPageIfNeeded函数才能给该变量赋值
var lastPageKey = "lastShowedPage";
var shouldBackKey = "shouldBackTo";
var lastShowedPage = getValueFromCookie(lastPageKey);
var shouldBackTo = getValueFromCookie(shouldBackKey);

function saveValueToCookie(key, value) {
    document.cookie  = (key + '=' + value + ';path=/');
}
function getValueFromCookie(key) {
    if (document.cookie.length>0){　　//先查询cookie是否为空，为空就return ""
        var c_start = document.cookie.indexOf(key + "=");　//通过String对象的indexOf()来检查这个cookie是否存在，不存在就为 -1　　
        if (c_start!=-1){
            c_start=c_start + key.length+1;　　//最后这个+1其实就是表示"="号啦，这样就获取到了cookie值的开始位置
            var c_end=document.cookie.indexOf(";",c_start);　　//其实我刚看见indexOf()第二个参数的时候猛然有点晕，后来想起来表示指定的开始索引的位置...这句是为了得到值的结束位置。因为需要考虑是否是最后一项，所以通过";"号是否存在来判断
            if (c_end==-1) c_end=document.cookie.length;
            return decodeURI(document.cookie.substring(c_start,c_end));　　//通过substring()得到了值。想了解unescape()得先知道escape()是做什么的，都是很重要的基础，想了解的可以搜索下，在文章结尾处也会进行讲解cookie编码细节
        }
    }
    return "";
}
//判断是否是返回
function checkIsBack(){
    //如果是跳转，最后展示的页面一定是document.referrer，这种判断只有在没有循环跳转的情况下才能生效
    return !(lastShowedPage == "" || lastShowedPage == document.referrer);
}

function backToTargetPageIfNeeded(){
    //pageNavi每次返回就出栈
    //alert(window.location.href);
    if(checkIsBack()){
        if(shouldBackTo != ""){
            if(shouldBackTo.indexOf('?') > -1){
                shouldBackTo = shouldBackTo.substring(0, shouldBackTo.indexOf('?'));
            }
            if(window.location.href.indexOf(shouldBackTo) > -1){
                var tmpHref = window.location.href.substring(window.location.href.indexOf(shouldBackTo));
                if(tmpHref.indexOf('?') > -1){
                    tmpHref = tmpHref.substring(0, tmpHref.indexOf('?'));
                }
                //完全匹配才放行
                if(tmpHref == shouldBackTo){
                    saveValueToCookie(shouldBackKey, "");
                }else{
                    window.history.back();
                }
            }else{
                window.history.back();
            }
        }
        //后退后可以在此做操作
        setTimeout(function(){
            if(typeof afterBack == "function"){
                afterBack();
            }
        }, 800);
    }
    saveValueToCookie(lastPageKey, window.location.href);
}
backToTargetPageIfNeeded();